package utils

import (
	"crypto/md5"
	"encoding/hex"
	"io"
	"os"
	"strings"
)

// GetFileSuffix 获取文件后缀名
func GetFileSuffix(fp string) (suf string) {
	parts := strings.Split(fp, ".")
	if len(parts) > 1 {
		return parts[len(parts)-1]
	}
	return ""
}

// GetFileSize 获取文件大小,不检查文件是否存在，自己判断
func GetFileSize(fp string) (size int64) {
	f, err := os.Stat(fp)
	if err != nil {
		return 0
	}
	return f.Size()
}

// GetFileMD5 获取文件md5,不检查文件是否存在，自己判断
func GetFileMD5(fp string) (str string) {
	file, err := os.Open(fp)
	if err != nil {
		return ""
	}
	defer file.Close()
	hash := md5.New()
	if _, err := io.Copy(hash, file); err != nil {
		return ""
	}
	return hex.EncodeToString(hash.Sum(nil))
}

// CreateFolder 如果目录不存在就创建目录
func CreateFolder(dirName string) (err error) {
	// 检查目录是否存在
	if _, err = os.Stat(dirName); os.IsNotExist(err) {
		// 目录不存在，创建目录
		err = os.Mkdir(dirName, 0755) // 设置权限为0755
		if err != nil {
			return err
		}
		return nil
	} else {
		return nil
	}
}
